package trainingcamp.day02.smallitme;
import javax.swing.*;

public class 交换文字顺序标准版本 {
    public static void main(String[] args) {
        //创建窗口框
        JFrame win = new JFrame();

        //设置窗口框的大小
        win.setSize(800, 500);
        //设置窗口框屏幕居中
        win.setLocationRelativeTo(null);

        //创建窗口的显示面板, 利用null参数清除默认的布局
        //清除默认布局后就可以使用绝对定位, 设置组件位置
        JPanel panel = new JPanel(null);

        //创建文本区域对象, 用于输入需要转换的原始文本
        JTextArea source = new JTextArea();
        //设置文本区域的显示位置和大小
        source.setLocation(10, 10);
        source.setSize(350, 440);
        source.setLineWrap(true); //设置换行

        JTextArea target = new JTextArea();
        target.setLocation(420, 10);
        target.setSize(350, 440);
        target.setLineWrap(true);

        JButton button = new JButton("混淆");
        button.setLocation(360, 200);
        button.setSize(420 - 360, 50);

        //将文本区域添加到面板上, 添加以后才能显示出来
        panel.add(source);
        panel.add(target);
        panel.add(button);

        win.add(panel);
        //显示窗口框
        win.setVisible(true);
        // Default: 默认
        // Close 关闭
        // Operation 操作
        // EXIT 离开
        // CLOSE 关闭
        //设置关闭窗口时候退出当前程序
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //处理按钮点击事件
        button.addActionListener(e -> {
            //读取输入框中的信息
            String str = source.getText();
            System.out.println(str);
            char[] chs = new char[str.length()];
            char min = '\u4E00';
            char max = '\u9FA5';
            for (int i = 1; i < str.length(); i += 2) {
                char c1 = str.charAt(i - 1);
                char c2 = str.charAt(i);
                //判断 c1 和 c2 是否在 min max 范围内
                //如果在范围内, 则交换存储, 否则不交换
                if ((c1 >= min && c1 <= max) && (c2 >= min && c2 <= max)) {
                    chs[i - 1] = c2;
                    chs[i] = c1;
                } else {
                    chs[i - 1] = c1;
                    chs[i] = c2;
                }
            }
            if (str.length() % 2 != 0) {
                chs[chs.length - 1] = str.charAt(str.length() - 1);
            }
            System.out.println(chs);
            // new String(chs) 将 字符数 组转变为 字符串
            //更新输出框的信息
            target.setText(new String(chs));
        });
    }
}
